The old saying is "The clothes makes the man." In the same way, we can also say "The driver makes the instrument." By changing the driver, the instrument may take on a new, improved personality.

Overview: What is a driver?

Just what is a "driver" for an instrument? We see the term "driver" being used to describe many pieces of software DSCPI Downloadable SCPI drivers for the Command Module, CSCPI drivers, VXIplug&play drivers. And the list goes on. They are all drivers, because they all help to control the instrument. Many VXI instruments are "Register based". That is, the manufacturer provides a list of registers, or addresses, and tells what happens when certain values are written to those addresses, or tells what to expect when you read the values at those addresses. If it is a switch card, for instance, writing a "1" to bit 5 of address 32 may close switch number 5. (But you better remember what the other bits need to be too.) If it is a voltmeter, sending a "2048" to address 32 may tell it to use the 8 volt range. There is no way to tell without the register map. Now, such detail gives the programmer fine detailed control over the instrument, but it also makes programming the instrument difficult. It is like getting into a taxi and instructing the driver how to step on the gas and turn the steering wheel to get to your destination. It is much easier to just say "1020 Main Street" and let the driver do the rest. It is the same for instruments to tell the driver what switch to close or what voltage measurement to make, and let the driver do the rest.

A new road to follow

But just as the taxi driver can make decisions over what route to take, so too instrument drivers can decide how to control the instrument. The taxi driver that knows the good roads will get you there faster than the one who does not. When a new road is built, the taxi driver must learn about it and know when to use it. So too, when new interfaces are developed, the drivers must be changed in order to use it better. Techniques that were the right way to go before may no longer be good. Such is the case with FireWire.

When the first instrument drivers were developed for Hewlett-Packard VXI instruments, the only interface available was the Command Module. It was limited in memory, but had fast access to the VXI backplane. The drivers were written to use memory sparingly, and to read the instrument registers often. New computers, embedded controllers and FireWire have changed all that. Memory has become cheap and plentiful. And in the case of FireWire, with its 150 m Sec latency, access to the VXI backplane needs to be limited. In reviewing some of the older instrument drivers, the following areas for improvement in the drivers were found.

  1. Don't ask the instrument for data that the driver should have already. Some drivers use the instrument card for extra memory which was something that was needed back in the Command Module days. But today it can be much faster to use a few more bytes of computer memory to duplicate what is written to the instrument, rather than to query the instrument for the present value.
  2. Write words, or blocks of words, instead of bytes. Previously, there was not much difference between writing data to the instrument a byte at a time or in larger chunks. Now there is. A "word" of two bytes can be written or read just as fast with FireWire as a single byte. By finding areas of a register based program that use multiple byte read/write and replacing them with word read/write, you can double the speed! Reading or written entire arrays with a block move provide even more speed improvements.
  3. Don't do unnecessary things. Some drivers were found to re-send data to the instrument with a fast interface when it was just as fast as checking the data first. With a slower interface, checking the data and sending it to the instrument only if it has changed will pay off. Some drivers were found to duplicate firmware actions. That is, the firmware of the instrument now may turn the triggers off automatically. The driver, written during firmware development when the firmware didn't turn off the triggers automatically, also turns of the triggers. Eliminating this duplicate action saves time, no matter what interface is being used.

Using these improvements, the E1458A driver's performance with the FireWire interface can increase as much as a factor of 10. (Revision G.05.05 hpdig_i32v.dll) It is well worth the try. For simple measurements, the speed of the E1411 can be almost doubled. (Revision G.08.00 hpe132632v.dll)

A New Driver for a New Personality

Improving the driver speed for a new interface is one thing that can be done by changing a driver. Another thing that can be done is to change the feature set of the instrument, thus giving the instrument a whole new personality. Such is the case with the E8460A 256-channel switch card. Originally this switch card was designed to be "stand-alone". That is, it was to be an instrument by itself. This simplified the driver development for the switch card. Unfortunately, it also made it difficult to form a scanning voltmeter with the E1411B/E8460A combination. The voltmeter and the switch card needed to be addressed as two separate instruments by adding complexity and overhead to the customer software. A decision was made to add the E8460 to "switchbox", or SWITCH. This gives the E1411B voltmeter the ability to use this switch automatically in a Scanning Voltmeter. By adding the E8460A to the SWITCH and VOLTMTR drivers, a "new set of clothes" is provided for the E8460A. The same hardware can now be used in a different way, just by using it with new software. This greatly simplifies programming and speeds up instrument operation. The driver indeed makes the instrument.

What Revision Number is that?

Where Can I Get a Copy?

The latest copies of these drivers are available at the Agilent Technologies customer WWW site:
http://ftp.agilent.com/pub/mpusup/drivers.html
If you do not have Internet access, the drivers can be obtained by contacting your country support organization. Ask for the Agilent "Universal Instrument Drivers" CD Revision A.08.00 or later.